package com.mpyy.dao.inventory;

import com.mpyy.pojo.*;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @version 1.0
 * @Description ProductBreakageMapperDaoInter
 * @Author JW
 * @Date 2022-03-09 14:09
 */
@Repository(value = "productBreakageMapperDao")
public interface ProductBreakageMapperDaoInter {
    /**
     * 获取仓库信息
     * @return
     */
    List<DepotInfo> searchDepotInfo();

    /**
     * 获取仓库ID获取信息
     * @return
     */
    DepotInfo searchDepotInfoByDepotId(String depotId);

    /**
     * 获取经办人信息
     * @return
     */
    List<EmployeeInfo> searchHandlePersonInfo();

    /**
     * 获取单据报损信息
     * @param productBreakage
     * @return
     */
    List<ProductBreakage> searchProductBreakageInfo(ProductBreakage productBreakage);

    /**
     * 获取报损详细信息
     * @param productBreakageDesc
     * @return
     */
    List<ProductBreakageDesc> searchBreakageDescInfo(ProductBreakageDesc productBreakageDesc);

    /**
     * 获取报溢单据信息
     * @param productBreakage
     * @return
     */
    List<ProductBreakage> searchProductOverflowInfo(ProductBreakage productBreakage);

    /**
     * 获取报溢详细信息
     * @param productBreakageDesc
     * @return
     */
    List<ProductBreakageDesc> searchOverflowDescInfo(ProductBreakageDesc productBreakageDesc);

    /**
     * 新增报损单据信息
     * @param productBreakage
     * @return
     */
    int insertProductBreakage(ProductBreakage productBreakage);

    /**
     * 新增报损详细信息
     * @param productBreakageDescList
     * @return
     */
    int insertProductBreakageDesc(List<ProductBreakageDesc> productBreakageDescList);

    /**
     * 新增报溢单据信息
     * @param productOverflow
     * @return
     */
    int insertProductOverflow(ProductOverflow productOverflow);

    /**
     * 新增报溢详细信息
     * @param productOverflowDescList
     * @return
     */
    int insertProductMoreDesc(List<ProductOverflowDesc> productOverflowDescList);

    /**
     * 报损新增成功后更改对应的商品库存数量
     * @param productBreakageDesc 报损详情对象
     * @return 更改行数
     */
    int updateInventoryBadProNum(ProductBreakageDesc productBreakageDesc);

    /**
     * 报溢新增成功后更改对应的商品库存数量
     * @param productOverflowDesc 报溢详情对象
     * @return 更改行数
     */
    int updateInventoryMoreProNum(ProductOverflowDesc productOverflowDesc);

    /**
     * 查询树形控件
     * @param proTypeId
     * @return
     */
    List<ProductType> searchTreeControl(String proTypeId);
}
